#ifndef _ERP_CDU_PROCESSING_1_MODEL_H
#define _ERP_CDU_PROCESSING_1_MODEL_H
#include "atomic.h"

class ERP_CDU_processing_1_model : public Atomic
{
public:
	ERP_CDU_processing_1_model( const string & name = "ERP_CDU_processing_1_model" );
	inline string className() const
	{
		return "ERP_CDU_processing_1_model" ;
	}

protected:
	Model &initFunction();
	Model &externalFunction(const ExternalMessage &);
	Model &internalFunction(const InternalMessage &);
	Model &outputFunction(const InternalMessage &);

private:
	const Port &ERP_CDU_1_stream_mode;
	float ERP_CDU_1_stream_mode_val;
	const Port &ERP_CDU_1_stream_crude;
	float ERP_CDU_1_stream_crude_flowrate;

	Port &ERP_CDU_1_stream_KER;
	float ERP_CDU_1_stream_KER_flowrate;
	Port &ERP_CDU_1_stream_OP;
	float ERP_CDU_1_stream_OP_flowrate;
	Port &ERP_CDU_1_stream_VGO;
	float ERP_CDU_1_stream_VGO_flowrate;
	Port &ERP_CDU_1_stream_NA;
	float ERP_CDU_1_stream_NA_flowrate;
	Port &ERP_CDU_1_stream_VR;
	float ERP_CDU_1_stream_VR_flowrate;
	Port &ERP_CDU_1_stream_LD;
	float ERP_CDU_1_stream_LD_flowrate;

	float ERP_CDU_1_stream_VGO_yield_val;
	float ERP_CDU_1_stream_KER_yield_val;
	float ERP_CDU_1_stream_LD_yield_val;
	float ERP_CDU_1_stream_VR_yield_val;
	float ERP_CDU_1_stream_NA_yield_val;
	float ERP_CDU_1_stream_crude_yield_val;


	Time delay;
	float total_flowrate;
	int count;
};

#endif
